img2cov(Imagen * imgs, int total, Matriz& cov){
    // total es el total de muestras
	//requiere: todas las imagenes del mismo tamaño.
	//          la informacion de cada imagen en double
	//          la matriz cov de tamaño final (ancho*alto de las imagens)
	//size es el ancho por alto = cantidad de variables que componene 
	//a cada muestra
	int size = imgs[0].size;
	double promedio[size];
	// inicio el promedio (nuestro estimador de esperanza)
	for(int i = 0; i < size; i++){
	    promedio[i] = 0;
	}
	//hago la suma de cada variable aleatoria 
	// notar q cada imagen es una muestra y q cada muestra es una variable
	// aleatoria multiple
	for(int imagen = 0; imagen  < total; imagen++){
		for(int pos = 0; pos < size; pos++){
		    promedio[pos] += imgs[imagen].data[pos];
		}
	}
	// divido la suma de todas las variables por el total de muestras
	for(int i = 0; i < size; i++){
	    promedio[i] = promedio[i]/total;
	}
	// ahora a cada muestra le resto la esperanza
	for(int imagen = 0; imagen  < total; imagen++){
		for(int pos = 0; pos < size; pos++){
		    imgs[imagen].data[pos] -= promedio[imagen].data[pos];
		}
	}
	//la matriz covarianza es la suma de : 
	// las matrices de la multiplicacion 1 a 1 de todas las 
	// variables aleatorias de cada muestra. 
	// donde el elemento i,j es la multiplicacion de la variable i con la variable
	// j (ya restada la esperanza)
	//calculo solo el triangulo superior (notar a qla cov es simetrica)
	for(int imagen = 0; imagen  < total; imagen++){
		for(int pos_a = 0; pos_a < size; pos_a++){
		    for(int pos_b = pos_a; pos_b < size; ) {
		        double valor = cov(pos_a, pos_b);
		        valor += imgs[imagen].data[pos_a] * imgs[imagen].data[pos_b];
		        cov.setPos(pos_a, pos_b, valor)
		    }
		}
	}
	// completo el otro triangulo
	for(int pos_a = 0; pos_a < size; pos_a++){
	    for(int pos_b = pos_a+1; pos_b < size; ) {
	        double valor = cov(pos_a, pos_b);
	        cov.setPos(pos_b, pos_a, valor);
	    }
	}

	cov = (1/atof(total-1))*cov;
	
}
